package com.service.user;

import com.entity.ChatUser;
import com.entity.Message;

import java.util.List;

public interface ChatService {
  /**
   * 返回用户编号为userId用户的未读消息总条数
   *
   * @param userId 用户编号
   * @return 未读消息总条数
   */
  int getUnreadCount(String userId);

  /**
   * 获取用户的聊天用户列表
   *
   * @param userId 用户编号
   * @return 用户的聊天对方用户列表
   */
  List<ChatUser> getChatList(String userId);

  /**
   * 返回构建与hisUserId聊天框的对方的信息
   *
   * @param myUserId 发起者的编号
   * @param hisUserId 对方的编号
   * @return 对方的信息
   */
  ChatUser getChatUser(String myUserId, String hisUserId);

  /**
   * 获取与指定用户的从mesgStartIndex开始的mesgNum条聊天记录 * 查看消息后，就将所有消息设置为已查看
   *
   * @param myUserId 自己的用户编号
   * @param hisUserId 对方的用户编号
   * @param mesgStartIndex 消息开始索引
   * @param mesgNum 获取消息的条数
   * @return 从指定索引开始的指定至多指定条数条聊天记录
   */
  List<Message> getMesgs(String myUserId, String hisUserId, int mesgStartIndex, int mesgNum);

  /**
   * 向指定用户发送消息
   *
   * @param myUserId 本方用户编号
   * @param hisUserId 对方用户编号
   * @param content 消息内容
   * @return 发送成功返回1，否则返回0
   */
  int sendMessage(String myUserId, String hisUserId, String content);
}
